{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "from torch import nn\n",
    "from d2l import torch as d2l"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def corr2d_multi_in(X, K):\n",
    "    # 多输入通道，单输出通道\n",
    "    # 单输入通道遍历，然后相加输出\n",
    "    return sum(d2l.corr2d(x, k) for x, k in zip(X, K))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor([[136., 152.],\n",
       "        [184., 200.]])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X = torch.arange(18).reshape(2, 3, 3)\n",
    "K = torch.tensor([[[0.0, 1.0], [2.0, 3.0]], [[1.0, 2.0], [3.0, 4.0]]])\n",
    "\n",
    "corr2d_multi_in(X, K)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def corr2d_multi_in_out(X, K):\n",
    "    \"\"\"多输入通道，多输出通道\"\"\"\n",
    "    return torch.stack([corr2d_multi_in(X, k) for k in K], 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([3, 2, 2, 2])"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "K = torch.stack((K, K+1, K+2), 0)\n",
    "K.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor([[[136., 152.],\n",
       "         [184., 200.]],\n",
       "\n",
       "        [[188., 212.],\n",
       "         [260., 284.]],\n",
       "\n",
       "        [[240., 272.],\n",
       "         [336., 368.]]])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "corr2d_multi_in_out(X, K)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "def corr2d_multi_in_out_1x1(X, K):\n",
    "    c_i, h, w = X.shape\n",
    "    c_0 = K.shape[0]\n",
    "    X = X.reshape(c_i, h*w)\n",
    "    K = K.reshape(c_0, c_i)\n",
    "    print(K.shape)\n",
    "    return torch.matmul(K, X).reshape((c_0, h, w))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = torch.normal(0, 1, (3, 3, 3))\n",
    "K = torch.normal(0, 1, (2, 3, 1, 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([2, 3])\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "tensor([[[-1.7177, -1.7760, -0.1503],\n",
       "         [-1.0494, -1.3934, -2.7693],\n",
       "         [ 0.2624, -0.0527,  0.7313]],\n",
       "\n",
       "        [[ 1.2740,  1.0253, -0.6922],\n",
       "         [-0.8467,  1.0294,  2.0351],\n",
       "         [ 0.2356, -0.2735,  0.0212]]])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Y1 = corr2d_multi_in_out_1x1(X, K)\n",
    "Y1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor([[[-1.7177, -1.7760, -0.1503],\n",
       "         [-1.0494, -1.3934, -2.7693],\n",
       "         [ 0.2624, -0.0527,  0.7313]],\n",
       "\n",
       "        [[ 1.2740,  1.0253, -0.6922],\n",
       "         [-0.8467,  1.0294,  2.0351],\n",
       "         [ 0.2356, -0.2735,  0.0212]]])"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Y2 = corr2d_multi_in_out(X, K)\n",
    "Y2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "assert float(torch.abs(Y1 - Y2).sum()) < 1e-6"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# exercise"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1、Assume that we have two convolution kernels of size  k1  and  k2 , respectively (with no nonlinearity in between).\n",
    "- Prove that the result of the operation can be expressed by a single convolution.\n",
    "- What is the dimensionality of the equivalent single convolution?\n",
    "- Is the converse true?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1.1  前后有两个卷积核，分别为k1和k2，则最终可以用单次的卷积来表示\n",
    "\n",
    "$(n * k1) * k2$等价于$n * (k1 * k2)$其中n为第一层的输入，$*$为卷积运算"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1.2  $((n - k1 + 1) - k2 + 1) = n-(k1+k2-1)+1$\n",
    "所以核大小为$k1+k2-1$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1.3 没明白这问是要问什么，不过如果是k1和k2换位的话也是可以的。因为卷积计算过程中是一个线性的，所以正反都是可以进行的"
   ]
  },
  {
   "attachments": {
    "%E5%9B%BE%E7%89%87.png": {
     "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/YAAAB6CAYAAAAVgshqAAAgAElEQVR4nOy9v2vjyhv/e/+U+SemNGnCFusm5ttEpDCcwpDCEFjMgeADBxPuIlIEc8CIvQSzEExgwWHBgYCKBd1ikYtFKT44RVAgFxUBFQEVATXvW4xk68dIGjvOD+8+xQvO5sjS/J55zzzPM/9XGIYgCIIgCIIgCIIgCGIz+b/eOgEEQRAEQRAEQRAEQawOCXuCIAiCIAiCIAiC2GBI2BMEQRAEQRAEQRDEBkPCniAIgiAIgiAIgiA2GBL2BEEQBEEQBEGU4MP6rKF97iJ487SsgwD2iYb22ew3yc+fR3AzQntXh/Xw9mlZC3fjZ+eHhD1B/CHMThtgjEW0ML5/+zQRBEEQq+NfdrC9q0H7wMFYF6b/9mkq5GGCzgcN2u42OGPoXvlvnyZCkQD2SQP8yPrNRLCLUZOjfeG+g7QQS3E3Rps3Mbp9B2lZI8GPHvhOH/bjar8nYU+8AQF830fw9Nbp+AO5G6PFGNhHA85bp4UgCHWeonHzrdNBvD8eJugwBrY3gvvWaanEx+QTA2Pab7cg31QC34dfISKCnzrqvAvzdzkZTXJtoMF+P4G4sSjNdS7G+wyNL87bp3ft+DAP+cqbaCXCPoB3bWJ8amB0acHxnpfImWVh9jsOCK/Fg43xhQP/rdPxTIJpHxoXp8atC2+Fd9joM4b+9O3zsokEP3pgjIGf2G+elnfL/RitP9aiwcN4n4E9u30EmF2OYd0HL5veaR+M9WG/ebnJEGPVauNcGvd7B7XI2malse9dlxPxbH7qYlz/bxMWuTZ0xsB4f8M3l1XWIplnHmeYXFjwgrdOe5weG/1dLqz49sfwCp91MWoy1Aeb0L5WQWw28UPznayxX3Gdq6ItXnFNpDrXBT964KyDye+qK68N1FkDxvXyv5UL+7izbzXRPTbQa2+Dsxo631c0Vbk2UGcM/PPvZsLzenjf229mZudPRzDO7TUMeDb6nKFxYsFf+bSehP1zcP4Tk3jvxwsLrk2GhP2Swt6HfW5gNE2a1Troc4b6S++mv2vBuiZhfz9Gi3G0vz3Dr/VdlxPxXJwv9c0Z16P1INt4k+4VhP2vPjirr7RYfwnsEw6206/05w0sHfw3t7AQhx7v5dT++etc1XW7krZ4rTWR8lwnNpo2fwypyOPearpZKuydQR2sOcQsIb7csyYY12GtsNPoDOrgOw3U37v/1zsneKNdXu+iVbGbq8i9MAN/nij/w4T9g4nevlHqa+Ne9dD+Yit0fjFQrOpf73xtolu2uffoYPipi8mmC2IS9ksKe/GbnIANXkFkvGvBuiZhP+0/PybGuy6nl8O/6qE1KBsbXZhHbRjTVxbEax7Xx62XjJviYPhXF5O74meC6yE6hxOlNYL7rfUMi733xArCPny7dVwe1bE+gPWZ//7ue76JLmPQzt6Dr/3z17nLrNsr2+RrrYlU57rbEZp/QIwOsWHbW1p3S4S9WPy3vmUa97WB7VUqNrCgcw7dcjDaY+hcyivCv7UwPjVgDIYYW25+l8l3YV0MYQwMDC8suIkNguDegWXN0r8JPDiWMzd5Cu4dWL88BL4L8zzznScP9vzdNjzJabI3HWM4MGCcT5TcEoJ7O8qPgZGZyc/DLEqvD9cclX5XnscA3i8Lzn2A0Iu/M4J5myzbxTP+rYnRwIBxOoadSrtwkXAy5rL+jQXrxo/K0MLkWAPb0zGRPJviyYNzOSquo+86NMbQ+Wrl66vgPfnyXgx4xfmK8h/XWa5sCtrDVL7QWLbuwzCE/78J+p8aaOxo0HY1aJ+GcFYMhOFetAsDabhXXTRUg2x4E7QZA/s/OoaDjkjXTg21nS5GNwoL20cb/Z2CIDOPDoy/agoBaAI4p21ouw3UtprpBfW9id6+Bt30xXMDDZzV0DWLBm/FOk7071xfzPT/kenCv1OYxJ58zKK+K29/svJ3MDkvGBPitnY9mbdpa9n8PMxgJca8RVu0YF0n2nZiLB1dOplxJ7PYi8aAtBvVYmwR49IE+h6DdjxJfF8+tpR/e+GyVd63E0gEq/8/C9bPWerdyfdZ0nHSj9rSCLYfLjVGF48PasJ+MfeNMLlOP+vfWLC+dsCYBv27Jeq/6F0lc+SinCryU9quVeYUSZ/K1XMRPmaXfXR2GmjsiXGzc+o880TGxfiAo3EiE8guzH8aBf+voK7e47geCZK5f/2TC/OkA22vge1dA84ahGQw7aPB2xhLxH1wbaC5Jf9/sjo2D9P+9a7ZR2dPQ+ODBuPXujdYFmPKop+a6b4R56NszRa9K913ZOKr4pnsGK06zmTH/Mf0+raIwvkk8OBE4zb7ewir1FVWWF8xmZn6o4PhfgO1LY7tvydwPRvGJ20+v/eu1iuS3asemh9q4FtNGFMPs4semrsatA81bLdX74txPo2PBfks42EWrSEldac8j6i0rXybkK6TC9ft8rlOqp8U10RLr41L5v9l5jphZVBh+fI4w/ioGY3VDTTaBuwXNNv3fxrzuaux00Tv4vk3LfhX3ep8SlAOnhf86K10Yu9fdec7fe55E6yZD+7iXXZQYzW0jgwYx100txj4wXjx3P0EnS2G2n4PxkBHt1kDS0wy3kUrfxqR2WHyLlpgHxtofBDuBfphEzXG0DgZor8Tf7sDjTPwg+TOs5j82VYLvYEB/W8NnDXQL9nhdy/a4Hwb7SMDxqCHVjY/0a5U+2AbzUN98d2SASWdR7H41g7a0D600RsY6O3XwFL+GOKZ+k4D280u9LjcUmmXLzztk2hh79sYDQzoB3Wwj23og6y5bYK7qI6aXehxengTxrX4lj8dwfjcRp0xNA8NGANTHuQncGDscvDdjnhPeztT3lGaD9rzfHV2OVgqqItYzPGobIyjFmosLUiL20Nykbd83YdhAOdLE5w1oJuiXGOfoefsBMsWgUst/sKFfz1jDXQvo7QEFnqMSfulFJm4Vxb1YkCuHZnwnyI/y0Rfc880sPkubADnvyiKv/REQbGO99po70Z98agl6jhpHh61t9jtSP9bQ22ngXqZsH+00d9ZtHWVdhFM+2gwDu1vHcagh/YHDv7XMLHodjH5VJunI85P88tC2FTmJ7Cg86w5rnB/iTdURYwLju22GEs7uxxspwtzvijPCHuplc3ihN6fjmAMdLQ/MtQPdBixMJaMLdXfVunbGTLCXvS1ZF1E/ZFr6BzL2slinORbDWh7PZie6hhdNT5UCfsA9n/aYq6IvtH4ZzE2ulcGjMMmGKuj/dkoNq2smCOV8lPZrlXmlBDhnYnuziItop4rxqlHB8ZfHGxHF+Uf94e1mP/KxP2yov79juvhtA8ex015tNFvdjC6djD+VFs9JkPRGJYR98uJ+qhPcOFfb4cB7P+a6Jw5cC4iv9q1x34RfbCxo0Xjjhh7WSYflWu20BPtkSfG3p0GGqnyVXgmeyKp0i+zc9RhE9tVc1TVfOLbGEXjNmt2YQwMmEX9LJoDZPEb3PMmmmcu3AthhcF4G6P/ibnGv+xk1qTPJLCgb/VgPYo6ZYyh8dmMxKEQ5c/zkfcwOVgu9oOY12ui7mRjndI8otK2smVRsk4uXLfL57qcflJaEy2/Nq6a/5XnujDSKKyNSeFmgofJAQc/isr53kT348vFIAl+9dFgTQxvQsRzRXn6FPklxvb29+WsmxSFvfBnWD76oAhIMQ+4cTtCMzdRiw6ZmhxvR2gyjv4v8W/nSz0T7VWkJ64kZWHPe7ASk+XsqwbGeGohLHyJFr/zr7rgmd+5Z/INijAMET5a0Pc09K1EA78ZQkvuukz7ucWQ+G5xQ5AJ+/TEky6T+TNH6YXo+IAn0l4h7JPfLjXpiQKPpNIjrkZhOwnzLQVTfLFDlTQ9CWAd8YQAjCbq5IIsEjRx4w9+6ND2+vm6TpiSxe0h6RriXrTBEz5WS9d9KIQrZwzNs4VwmBwwMFaD/jOqb9+FPV3eXza5CFx68Rcu/OubqYVoJLCXMbNLivslRL1Y1EXlG/lZLoLxxCc5rcSCSzI2xP1FuY4zC7jzZmriFv9OtwPvspsaA7LMztvQPqXbuvlPyU5/1D5TVlCPNvSPi77nX3ZyaRWLhsXCqDo/kclk0u/s2ki4QInyzAqc8QFPLDSWE/byf8vGFpVvV/ftHAlh7/8U5dX/mdh8lEQ7Dn70wOeb1FF+90dwn7LvLR+jq8eHCmEfBcdJi+Ix2pynTQwVzBOr5kiV/FS3a5U5RRbNV6SleV40RohFWMq/NbYu2tJhr8V0OSnulz+pf9fjeuRf370w0d+NxgffRG+Lgccn9ndjdHaE0C+ymlQhKe6XF/Xhwr/+nzHMEy2aN3yY/9bA+Euc2Is+2Pw6W/wt2sCa+64qrNlEX4kX7ou8JMWXyjNyYV/eL8UY302tDcVapXhMUJlPlE3xozrLj2MOjI9iPT9vg2aiDKd9MBbHWQlgDzRs89Vv5PGvumJum1uoDDELM3l5pruvEIyq75hh1NbQSc3rIm3z8VuhfpXajawsStfJsnW7fK7L6ieVNdHya2OV+V/SP6TEa8US17K4zUZ1E/zUUeMadCuqlzWNh+n06FF6XIxbHLX9UaJ9rki0/lo2VpGCsJcINFVuR2imzAgyQj8qhFEzEoUFE7hoaG2Mb+WDvrKwz4rTaT9RGemCFB1KTN65COK3I2hKbgniygbfN6HnBndZeotNLmTCXirIM4uw3GD8U0/sJK1J2HsTtBnPD0J3mTwpCHsxyDXQt4o6m8xEKdqJlDX+wBd1YOqpMpfnSYhcISJWqPtIhLBcpM4gdbXf7KsmdipX8FdyL9rgWzXUdvrRyagqsX99ZtK6HUFbJZBRJO5rWzW0s247pf1BmIRZn3naxCi2HEhN+h7G+5J29Zw6nvYTZVBQx8v4kz2Kb8/OSvrIrz64ZLEwd3kpSkfkOxu36+r8hNHp3WLCdwb1Rd3+6ssXgz/1VJm8iLBX+vaSfXue/z7MyCIiu8Hk/MfzZRa1tXiMl46TlWO0yvhQLuylaQtD2MeZTSKFxU7VHLn0nCNt1wpzSsFc4J5phf1DjPkM7NMk4063bpEnFpK1rRoaJ0sEg33X43osaIQlVmmsgJ/6Wk5QhbivobasqA/jdUx02loa+2BdyE2a3W+tgpNZ+ZpN3lfT71Z5Ri7sq8cZdrzMHKU2nygL+0igy8axwA8SbTCdHmEunXy/+P7Kp+qBDz8I0xYq8/8fuQs80w9cCPvV3hH4Pnx/hlErUVYK465Su8l+q3KdXCzss/WY1RbVa6IV1sZK87+kf0iJ21u1sGeshsZ+F7rM/WZN4+FC2DPwDxo6R8VuvUsTrb+WtWSqEPaxqE+aS6rjnjfB/o8B248W3r6P2Xk7b9L/YMPYF7sntZ0WuqfZSvBhD4TZKdtqoHU4TPnTPk/Yy34Xd6h4sJBR3PiCmzF6zTg/GrS9BmpKwr64IysL+6pFWKpc1iTsCztjZnBSCp4XYHbRE1fi8W1on/qZTlK8+F+kWbyjuRV17D3hS14t7JNltkLdRxPOWgINFvWpVReAWT/M+H2R+fvS0ZRXEvYRsYhPpiW+OSM5gAUWeoWBQ1as41RbFQuN8j4iw4c9aIvTB74NbU+D9kEu0vJ9V0axAEz2xer8hBA74xy6FWT+uyQdmUn7JYS92rdV+na+zzHGwTlDPqJxfKoqZzVhv8zcUCbsi/OVq2fFU4yyOVJtzqlq1wpzSmQ6KC2Xgv5hn/BC4bBeVhT273lcn2+I9mCcCjPfWlMelM8908A+9mA9M4Dx6sI+gHXEwFgdvS9DYYqbjbOydgoEUqY/VK3Z7GNZX02/W+UZdWEf/2aVOUptPlmHsE+1wdTaIq7rhLVV9Fyx5Y5iX5GtWeIDimdeobi0sH+wYbS3xUbDBw3anrBKqBb2S7YbSV8qXyevKuxV2tvya2O1+V/SP6QoCPswgD1ozq/NY4yB7fRT8UbWNR6GYShckT/wRDnwpc3npbyEsBd+R8vvygqiQBTSyl8sNlM8ephZY/T3hX9gLrr2UwDvxsL4JPKT/F6yaFyLsBennM2vznxjIol0tzkKFtg+SwajkA3ubyTsFU6Ulhb28Tuz7SR1Mladx2zH9O8cTKLFSuO/2Ne4evEfWDp4wtdLVubyPEWBIy+8leo+Po14qSu+nmWyGd1znE5bdIofb7Q9RjviVe9a2RR/URc8k5Y4UnLWBLlod3/lOk5NHFGsiqypf4Wwd8+bCV/g6j4izOb0kkmoIGBpvDhaSthHt5B8thBcG6jzxOL1R0+ejtSY8DLCXu3bqwv79jcH1nE948sdld+RKe/DT0Vpz7elfFmojA9lwj5KW/YkLpScbi8TFb9gjlSZc6rbtcKccjuCxpoYXufLRFjrZNMcL9Je+gqw1U3x3/W4/it9ehmY3VRag3lbjDa5nrk58TxTfCfhXx/OzZbnVlqB4vyzFHKBJMajKB0Kazb7RGbVtvwzywv7VeYotfnk+ab4izxwlvVfjtf/ic3W6Kq/8hhFVcTjRdptVfjzP/9K7eVM8SMX5bmf/yJ9Swl7lXZTSNE6efUT++r2tvzaWG3+l/QPKRWm+L4L24oC8z0F8G4m0HeSm/kin+sYD8MwhHdtwY420QPfhX3aXt9G8LpN8f0fOhq8rRYtW8a0wPQiNsONze48S0RnTJm4pU2ira/5oG32MZv7k0gXznfrEPaZtCrmO9cwswL3NYV9ZnAXvlexxYQYfLPPZHcQK4V9ZKqY9VXJxiuoFvYBZt8NGFez1N/TZnPVi/90OURpSU7kcZ5a47Q/0MMEnfmm0/J1Hwenk5qsXY8xtv9fGJ+66DT50rvWzw2yFPvA6T8Tf0+dknsY7yssrp8ZPG/RltPlJCbUZL0GsD7X5BuAy9RxqRAuqOPSqPjyxVCZqbGYvLS0D10YwLkwYJhucTpi3/zkqbeCsA9vR9C4jv5JPe32lHONitIe+enbsvxFlh6pdpPb1VcwxVf69qrCPhYKwne2frwQbO55s8Knc1VhrzI+lJviy9MWuaYl81u52KmeI1UFRHm7VphTCuaCYuKTPflawfk2FpGuH2wMD1voHBnQP2kiArfS+6P2+ozgee95XE8HHI3XQvHC3EafxxZPUSyVnRZ6xwZ6f9WgnVhLmUQ/O3hefKoab9ZmrMjsExHvyP3eRefvNupbcZtyYOxr6F35CH8ZaBQdDJX0wfT4FV/pHJ0wK6zZ5H3VTpnrqzyzvLBfZY5Sm0+UhX0U76Io8JjsBD2Y9lFnaaEpNu/raP7dQ/+4g8ZWC+NswL4nH7MbN+XiEmbykLcOiPIxPwx0MTnsoHNQRy0S+sEvA629HsyHEM6gURAIPLbwUrwWVLqeTR4OqdSvYrvJ1G/1OnlVYa/S3lbQRUrzf0FflCDiRclikkX327N0XB7R9pKuVOrjYXA/w+xBPt7M3chSliLi3fHaK5ga6Bx20IzjS4UeJoca2l8dBN4EHV5ixRJt3C5rzSYV9iLIxjZ6V25+RyaebO4sDE/NAr/48ooXhREXsgNjJ9r1CsRvfauPRtIH5UtDnCREVycFD5ZYwKWC8nG0v80QPIUIPAejA55qIKsJ+zAKYsHRPnPgP4UIn3w4F100iq6ReZigwxhaXx14vg//zsYwik47n1xeUdiznS4m0eaM/78R2qldvaiedvqwHgKEgQ/X1NFgEmEfB9MoGHDdM+HjObqOdq7uTeg7mWAZisHzeOI94eNMBGeat6Xqxb/YvW1heO3B93240yE6Wyy1+SPKs4HupWgzoT8TbSZprrNs3QeOCMqTDCIY/2ani//n/26iP3XELu9/6tc4Pf9apHjCSu9Exz5w+k8RXKRetcO4luvuQoT/G6LB2CLAVhRILhl8J5j2oR2MCxfvynVcJYSTdRyECB7yY0cWZ1AH+9iDeefD9z3MLnVhEpfdKJoTBRQ7GMF5EP3OM3UR6C0OFhWPYXFbCzyYnxupE2hlYT+f3LITaRRgJzGW+tcjtHk+SnzSLzKOgTJ7DBE+enDO2pnJJhFUbT4+ZEWtyrefKezDMFqAJN75YKLL0/OLZ/XR3Irnn1WFvcr4UBE879FCL5m2J1+UbdZKTil4XsUcqZCf6natMqdEaUmO4Q8Oxv80oH2Rj3kionBmXIl+0/jHhHs3QWeLJ1x+khv/FWPNOq67e7fjej7gaCzs9Z/iv2NhI0T1Iiq6mP/UA42t47q7OG3zjaFY2B/bop9u6bD+vwm6B2O4vwzU49PeaeKk92mGYZOnr0D1TPTi2yxy3xV9kP9lwI4W52LsTVizqKzZEuOI+xgifHTF+JwcD1SeWVrYhyvNUSrzifo99mXXwC3cneYbqr6d7y/xBt7crVfUS/okMuGrXHTyPnf1WbR591s7FZHdv+yifeGmNm/sEw72sS8Ccd4M0eSyth/lM3krVmnbEs/Xj0y4vg/fm2FyrIm5MW7jKvWr0m4kfal8nSxbt6sIe8X2tuzaWGn+l/SP0rFEdhAl6mT700isVxLtMTU2q46Hc1/9rJtfMh2JoHxxe5xvMjkw/urDvpugw+roWf68/kU9+DCPOBqns5J8LgLJh2FYob0FUmEfn55Jic1CLzviNFY2mEcDZfGuvbjyZL5LcWfO/ZsYY2Bb2TsAXZhHSX+JGppH40XFhQGc09bi/3MNvS/6Gk7so8L9NRRXpETv57s9jEssGdyryPclTsvlGDpPmLe85on9sYHebpx2ju2/x+noz3dm4v8z1PaHMP7JDPYPJrpbrPDUIh6UndPIPzOuo+wOmKKPffo9HNup+ydVFv8uzH+1ua8n3+1h8k0HT9zIIE7sdRjJ5z50cu152bqPfa5qkb+VtttBP7q3NPB9BPGC5aasDJLvM9Hbl/tMJttb+0vZ4tSBsSUJWvPoYLhfE1er7A/hVCzynK9NdL+XCPdHB8NP3bwLjSzNP/ro7NRQ29HQ2GnBsBxYgw4aW5G/fOWdtIp1rCCEs/1VPzPKfeyjckv2mcnXFlhhPIBQTLyJ9LKtFoyf6fEx29ZqzT6shCWTurAvOal+cjFJjqV8G53z5FibX+wF10O0thb9UfvXgJ7xw/PNbvTOEjefym+vQdiHi4jRo7gv300y80uy7J8h7CvHB4V77DNp4x86eSs5pcVOxRypkp/Kdq04p+TmAg7t3+R8ncf/aaD9oYbt3fh++NhndLH5PF8wRqd2KuaJ/lUPrdIgbS7Mo3a1n/e7HNdnGO7mr+ed/L2N2odtMaYnNwXn10bGIks1ILKD4V9dTEqEe3A9ROdwUroxPPuq5Vws3e8dbG9tY3unheF1gPApgP/oizqPRJnzpb4QZWEI+zizyFbwN+8OkmNYDc1BOsZC5ZotzI6DNXTOh+hmxoPKZ1YR9rL0Zda30rZfMZ+oC/uovcjmk/kJeg/6p21s72rY/tBE9zQbw0Ks+ec3a0XCKuV6l7zituDUPLYO6HzWoX1oQNvZxna7P99oFOOYj8AX1glCY0QCfL6BZ0OXRW+PNppSp6cVbnnZ+m6dTjDcZwvTesX6VWlb2TopXyeHknW7orCXtDfZmmjptXHl/C/pH0VE1j/p9hOV5c0Yvb8aaOyKWBmNnQ76l7NUe1QeD+8naPMy7ePDHnTQ2GmIeWGngebhENZ8I0gEjBbrMeHPL8T6Io/ut44Q/JJ8Ol/qOeuSUu0doXyP/asQFPnhJQvJLzbTeQoqfv88gqTFQiVBsR/+q5DpxI/laQ/8Kv821bKtqKNly/s5Pncl7SklkhTazXJ1X1w21mcOfjCBG6ynjP54KscM9bpZur9W9Ckpr9bWVNKxXH6Dqn4dKKZ7hW+vhcd1tZUXqLO1pW0N429hu15uTlnPXCD8sutHi03iOCK0XhIR+nV57+N6dBIaz3eRSXbjP/uN1ygFpARWFMl9Xv82+rvpIFjhtJ+4vjJLerOwfE2hNi5VjoOKz6zSzubpK4oyXpCW584nos9lr6oOczEeCrk2UE/418e3eEzugnzaHk3o0iB4sXWA6olutAEU3c40F0/TPjSJZY1wuclsGpW2rfXX9yrvqW7Tq84r6v1hqfa1lvk/skpc9janMMTy42GA2VnrGcHwYssOMYbZxyxxLaCH8YEknlycx73V4ka8L2FPrJGCkygCYagQN+Al8E10WR29HzNMDpc43SEIgnhz3mJOEQu47XmsCBfjfQ7tX3MJH/sX5r2P69lo5NO+EDDXFvTdJQL1vRaRT7c4jYv8VaOTXv+qi9ZpUpT5MP/maGaDfc1RDUL2jrkbo/fvZGEV8yTcS4rvDH8JhMts+qrqfIyHItIRyKMrTP+1YJ+38u571wbqMrN/6ZW4coSbYWRa/VNPmG37MP+JrENSvxFXcfOUUKxqW8Rb4l91Ey7dS7D0eOhj8uk5wV2jzekvDuKNyrlby7WB1j+mXIdcJ9yRlvwmCfvfFhL2ZbyJsA8dDHc5Gs0OuufqvpgEQRBvzxvNKXcTdD5o6Bzr6O530Dtf4qq6V+Gdj+u/DNR4YsPhwUR3qw7tr07OHeh9ELlW7nTQO+yge9RF80MTveMuOp8ned/S0hPO30DYP84w+nsbnNXQiK7h47u9la6gfg7Bjx743Hw5xCJCveQkP4UQzY2E1Y1zqoHvNNE5yrro+DAPC4LmxtdOqpzSRm5FjU89dD910TtsYvuvHvR/OtC/u/nfXxtoyMyb3531DbEgupVg2dtKlh0Prw00nrmJ5l71oG010TvqoHPUQzuazzp/Z9wn5oi4TMlAwMtAwv435tmm7L8zazPhJgiC+DOgOYXYNF7GLP4NePQwm9qYeW+1bglgnzTEqXYUADcZf2sd10EGZg/bOdPjAOY/2Xhf6oEfq3ExahYEBSbeN3djtPlqp9pqzDBstl7w/XKCH73CwKoqkLAnCIIgCIIgCKIEH9ZnDe1zyan3RhLAPtHQPpv9Jvn58whuRmjv6pnAkBvM3fjZ+SFhTxAEQRAEQRAEQXQmzogAACAASURBVBAbDAl7giAIgiAIgiAIgthgSNgTBEEQBEEQBEEQxAZDwp4gCIIgCIIgCIIgNhgS9gRBEARBEARBEASxwZCwJwiCIAiCIAiCIIgNhoQ9QRBvz5OLyakJ763TQRAbiHM+hLPknbeB78Nf8Z7cd8VTAN/36boqgiAI4o/nNxD2AfwbF/5Sv/Exsyw494H077Ps/YGBB2f+dxt9xtCfvkLeHmeYXFjwgnW+9xXT/yfzInWngofxPgM7sd++DJRxMT6ovcJdsopl82BjfOEsMabk3+v/HGN87b942b3Wd94S++Ql2rPKOJh5RqVPv1G/93/oaOz0YasI9Ucb/V0OxhjY/vjlN9OmfTDWh/0C73a/d1BjDGzD5zTvovU6dbGRBJhdjmHl1mvrwIc7NTE+HWJsOm8wXxMEQayXzRX2DzOYp100t9gKiwYPkwMGdpxZLN6P0WIM2pmb/vtPHYy1MfFCrE8YuzAHBszbkmd+9cFZHcb1qt/wYZ8bGE2TC38S9s+qE9XfPbvuVuW9CHtZ25PjnjXBD80lN+fWVDa3JoyBCTfxnPe9Dca6MP1V3xuNL+vOUy6tL/Sdd8a7Efa5Pv2e+n0A+7iO+rFduTlmn3CwnT6s7Ab2WpCUyUsJ+/sxWoyj/c3d+NN6EvYxsnnDQZ8z1L846/1W4GD4FwfbakDb06B94GC8jfHdW5cBQRDE6mymsJ/2wRjHdrsP40hbadHgnmlgHw04ib/5V13pKYZ7poHtjaIF9bqEsdp7gmftIAvB0brwlv7un8mqZSP/3fPq7nl1/vbCXtb2JDyY6PLXEkKSsikQHcvVneS9T8H6xYYsrS/xnXfGuxH2uXbxnvp9iPBhgg5rYlS6MfnS44OkTF5K2E/7YKyF8f0blfcaIWEfUzBvBOs/rfevumC8B2tu5eJi1GTg/615A4EgCOIV2Uxh/+DNTaa8i9Zqi4ZpH3x+Ch8iDH2YhwzaZx3t1GmdOBXj84XQYuHi35oYDQwYp2PYXvYbAbzpGMOBAWMwgnm72IH2byxY1hAdxtD5asGyZvITt4cZLCtjHua7sC6GMAYGhhcW3IJTxeDegWVNoO8xaMeTxHtU05/+/9atgrlvKm02vKf8M971pPidDzNRFk8e7Og9o0sneo8P1xzBGBgwzs10vmW/M9PuGaI8MuUceHCicimvkxXqUlZ3qvlP5FVajk8+ZnFZ5OpOceHuOZicG9KyUkprSVssbnuSb1y0Eptmid//8hD4LsxzA8ZgiLEVpTFRx9my8W8s8TtpmWbLRrjdWF87YKyDoWXBuvElbSWA90u47RT3l2yZi9/E71Mu88J6LUprwXeePDiXo8IxYl6+Jf1F9H8L49NM+ZdR2i4Xbk7LjDu2pybsg3s7SmtRe872KZkor3gm0aeX7feLshxhcp0RLcr9flGvxvkETq7sxBxWHxQIk8CDE/VL9vcQVtbtLNGfF+Nutv7iNKatXErHwrmwr8hfGC7GWWn+Mt/62gFjGvTv+X5fNnbF7d/3RJsZTX34t3buHf5Ntm+J/mYn3/cwi8YoWZ5Kysyz5+3BvPXhlgp7lTGo5Fuq40FyvJ1KNmRL+7c8X/N3Z9q7rMyK540C10ml9loy3gQ+fD/9TvuEgf1j/vabpQRB/L5sprBPsLKwDyz0GEPvR5D4dx3GtYvRXuLvoQ2dMXSv/Pm/+4yhddDGdrMLfaCjs8vBeBfmfJHkYnzAwT+00RsYMI5aqDGO9oUw8XevDBiDLpqMoXloSBdJYRjmTyTuJ+hsMdT2ezAGOrrNWqHpmD8dwRjoaH9kqB/oMAYj2L5q+gM4X5rgXEPnOJ9+KXdjtHkmbTtdmPeLMpl8qoFtNdFNvLP5xVlMotM+GGugsbuN9pEB46iNbc7ADw0YBzVof+swBj20thjYTh9OUPG7g/G8XKXt5H6MVlS+xXWyYl3mTpNU899C+2AbzUMdxnEHGmdpM/VHG/0dhlqzC31gQP9bA2cN9Kdxe60W9sG0jwbj8/Jsf+Dgfw0X5amS1pK2WNz2skRCJGNi6V20wD420Pggvq8fNlFjDI2TIfo7NbSOjEXZHEzmi2H7ROIznDotTJaNMBk2DptgrInuwIBx5UraivhNfacx7y/dZg2stMzzdVBZ5qX1WpRWSV3fRfUSvae3XwPjTRjXQbp899poz/tLS5Rvoh68yw5qLC5r4fKU7E85KtulyrgTf5dju92L+noDjZ3y9uxetMF5lJdofEin1RPtmSfyu9NAIyXsFZ5J9Gn1fh/A/k9bpC9qt41/EmO+Sr8PHBi7HHy3I+q1vZ0p32TfSVuizfFtjKJ+yZpdGAmT+WDah8bjco/qZqcLcz63iPpr7DTAP2jQ9oa5b1SVSWn+QhfmPw2wrRZ60vYj+dZhE4zV0f5swDi3o3dVj13z8YXX0NjT0LvyEPzogTE9MT+IdQBrJjYdM2sG0adrIk/zMkvGOZCXWfDLgMbjvqKjs1tDY6deIuxVxqCC+lEdD6TjbcKto7J/5/PVbW7n8lVWZpVrlsQpvmp7rRpv0jgwPjI0z0vWOQRBEO+cP1fYx5NlvJid9sG5eI/zpb44ob82UE8t1KIJNDnpBRZ0ztD+Liae4IcOba+fMPEKMfuaNf1XMAXNLBKdL/XM6WaV6VixKX5Z+sNrA42MSWfwowfOdVjSk1eRjrR/p4vx/sLSwb/s5DYhxCTfWJhhT/tg2e+awj2imYx7cDtCM7fgbmJ4k303h24Fxe0kIeyL6mTluszUnXr+M4slS09ZlszO29A+JUVLAPOfpJ91hbCP6rr1LVGejzb0j4t2opLW6raoYoovfCcXm2aJPp0ykYzKnPHEhltcNosyXk7Yy/6/bEwRv+FHaREyPuCJRX+FsFco8+p6laU1+10fk09ZURvAPmmA7SzaqyjfdP26500w3o+eEQtcLdfnOPq/5HVZnX6FcSf6d/PrbPHuJwdGmbB/tKDvaehbCQF4M4SW8HMX7SQ9PogxbtFnVZ7Ji/bqfi/mj4xAvRujzfmi3Sv0e+Em1kuMvwGsIw6W2NhavCtpiZZFNj6I+k7VTbyhmam/+rFVYblRVCbV+eOZPu+eNdPCOovEFF9l7BL9u4VRckPcN9FNxka4HaHJeWp8EXUZW/PNMGpr6KT6tImu5BAgXWbROJkaTzxMDnmlsC8fg2TfWmY86KViirgXbfDEXFzdv6N8HSbbY5TGeb5Uyqx4zbL4m3p7LR1vUkQbS6oBKAmCIN4pf7Cwj8RJNOk4X+pgR5aYBKZ98Ei4ed/bCoI8s0mQJPDh+z58U8+kc3lhLxbfbYxvVf3NVH3s0+l3/pMsMqLTCml6vQnakoBRCzO8rDtDjItxK725Uii+U1YJmYle6sMp3h0LzVWF/cp1maq75+a/wAf9UaRndpY046wQ9r/64JLAcAuzU7W0VrdFBWHvi0Vdtryl/qbTfuZELZwHu4x//5LCPpePVEDNCmFfWeYq9SpLa+Y73gRtxvPt9y7dhorLN05jtEg/GMNdxV9cmn6FcfNXPy2kwkS9KvmEi2vPfN+EnviWdDzLpEflmVWEvfy9IezjhChS6PdCCDfQtypcou7HaDGtxM9e0gcKyl208bhNqMYfUfSxT+WvYMy5HUEr86HP1Yfa2CX3Z49c8c4WVjv8xIJ5tOj77plWGKgy8H34/gyjVnKskJRFQR8t97FXGYPUv6U0HkSWilIRLOvf3gRtxqD/VM+XvMwUhP3K7bVonRZtdmx1MKHAeQRBbDh/tLAXE0EPVpAxvw8s9JiG0W0A6ygbPb94wkj62M4uelHEfmHup+3Uni3sw9CHPRBms2yrgdbhMOXvnWc5YS/SH0XaZnKk6a0MYpQ3pYtJLdrLhP19yfsKgjMl3726sF+xLlNl8tz8J9/twx4IVwPGtxfRfBWFfXV/UUxrZVtUEPa5vCXSWCrQ5b9/VWGfajvlwl5tjKqqV1laM98t7Ifp9llcvonfPtgw9mtgjKG200L31CyM56GWfoVx82d2w0zW7vIEN2P0mnFaNWh7DdSS7eJY9vt0elSeWV7YF/fFVB0o9XsxDmlx+X7qy/2gC/pUYZmXtc9UG38JYR8/Jyx35HPOMsJebewqEpuLv3sY7wtrL/+qC/ZpAj8S/ql3P9gw2tvgjEXm7xq2eYWwv5PNZysK+6r6ec54kPtmRf9WzVdlmVUL+9Xba0F/vB2h+SY3WRAEQayfP1vY+ya6jKP/fYxW6kQtnsRNGB+zpsLVE0Zg6eC8jdH/Er/LLW5WEfYRTwG8Gwvjk8jfW2patkjXcsI+2sw4MqPTrzSBJODR3F2hcLdbbJykTJHDcPGtFxH26XevbIq/al2m6u65+V+82z1vgu3oMBOmtunFU7mwFya9ekl/UUxrZVtUEPYFViAbIexTp4nlwr66zFXqVZbWzHfjNGX7YaaclYR9zKOHmTVGf1/EUJgUiKzq9CsstKf9jLl5ol5LXUs42mfJYJcZ0X7CFtZYz3hmeWEv2xiOyutMW1LYL/qhf+dgchr56v/npNMstXAqKfMwlPiXy9r4Swp7MeY0vzryOafoW5I4JipjV6GIvh1BYz1YdxN04nbom+iyLsz7eLM/8a0mQ+OzmQjalh0rJGVRYFGxkrCvqp/njAdxWcbWClX9WylfKmVWLexXb68Fc+OvIbS9Pmy6w54giN+AP1vYx5PXfn5i8y87YPstyWRVPWHIBIaYjJ4j7D1YX/P3gtvHLO9nmUnXcsI+msSLAjDJiBYKXTMTyMkawvjmIAgDWJ95dPKR/p3OKwS6srDPTvTpQDhScZU7ZciXzcp1mV3gPyv/8bvlC5OUSKgyxb8dQWNa2pc4DOBcGDBMVzGtKm1R3cc+uzG1qrB3vtTBWpkAb6lT4GcI+4xYEL68ccyJClP8yjJXqVdZWuW+/J3LTBTwTCyCSmHvWRgORrBTQaZKTHOV0q+w0C44OZOfpsv6WXo8Sm2G5cYzO2Wur/LMKqb48vdGrg7KG3oBZt8NGFezVN7db61EXITk9/NuH6V1VVDucdwFu7D+ZKwi7AvGnCokgQpVxtliEe3A+MjRPewkNnnEJn/3qId6sh6lGy9pMSwti4I+6n5TEPalY5D6t6TjQXbcfJigM49Ro9C/VfKlVGYKpvgrt9f3chUsQRDEy/H7Cvs7C8NTs9JH1PlSB2OZQFFhOJ+EZIu9qgnDv+yAsRaG1x5834c7HaKzxTLCUryn+XWGUHYKHoaS4HkNsWseXfsSPFjo75Rcb5QMuvOknn5xt3i0sx6ECMMAntVHc6uDSUFE2Wza/OsR2jxxghsF32qfOSItgQfzcyZYzbOEPUfziw0/CBE+Re9OnjDG3/82Q/AUIvAcjA64dKGerJOV6zK76HxW/hPidVAH+9iDeefD9z3MLnVhnjtfmFUtXnyYhxz8YATnIapbU0eDNdD/FSintbotytpeFnGSlg3+uKqwT/ohB08B/DsT+g5TEPZR0LQn2ZgS/Wani8lN1Lb/N0I7dVpaFRW/usyr61WW1nx+3DMR+2B0HV/dJ8ogGUSq+sReBKxL9n/f6qNRYq5anX6VhbYoJ7ajw7wLED4FcE0dDVbSnh8m6DCG1lcHnu/Dv7Mx/CTM8uf+vonxzH0MET66oj0n06PyTIGwL+33jxZ6ybH0yYdz1gZPBnhTaNsiuNyiXsPHmQhMlhGx7rf89ZGyOSFdnlEgPtn4Pb8JZTlhny+TCouEawON5Jjz5MO56KKxayRu68gg29RRGLvKTsedgVgPJK30xByQ9c0WG8f1IxOu78P3Zpgca+AsKcDlZeZ8acz7aPAURGUtsTbK1lnpGCT/lvJ4wBroXoq5MfRnYm5M3DyjMj5V50ulzIrXLAuxv2p7LZgbHx2MT62SPkMQBLE5/LbC3rvsiF3pimAo4vRVFmwouu6myjwzDJGfMFyY/4oJizEGvtvD5JsOnvmOcxo/U2BxIDE1NI/EVTTC/7CG5tEYs5Iorr7ZjZ5f0kTtbjL3W2WMgW21YPws8+dP+FwzBsY19C5m6XuBfw3R/sDn76w1+7AesvldVdh3YZwmvr/VzKQ3gHOaSd8XPffufJ2sWJeyiM0r5z9RX48OhvuLeqntDzH52kqYMCucSjzOME7kSVa3lWlVaIv5tidpn1fd3ObZqsI+W1dsq4XhoFsu7EMHw90on1K3jegE6dhAL36OcWz/PYabMSctu+6usswr61WWVll+fDinkS9sXC8n6UjmSqb4d2am/zdz/TndpqrSrzjuZN/zaYThP+Xt2b2KfM/jfn05hs7Tm7XB9VBckxmVSed8mAvcWPmMpE+r9PvsWMo/dDC6CTJlX+1jn65Xju22kbGqEFHQc5vUKQrGhycXk2R/5tvonCfrW1XYF5VJtatBdszhuz2Mb0oCxRa4j1SNXaVm71NJoMvo9Dqb92x7aZ1OMNxPrhmKyiw7p+gYDRRO7EvHoKJvKY4HLR1GMk0fOum1k9L4lJ8rjeN0vqrLrHjNkjrFX6m9ytt+fCNGccBJgiCIzWHjhf27JvDh+xUR7B99ccq81LuDYn/3onSseoXLo0IeZGkreSbwn5EeGamFY8X3n4LV6mSNdbmW/D+u4R0KZVGd1oq2WNX2Ahv9j3UU3Ve9Eip1JcmnvM1kTEOfW+5VZa7w/uK0LlEvL1WW62iXK72netyZl11Fmag8k0uryhi+9FhanD7p925HaLJiqyolntTKcW1lUpS/NbShtc8z62ovMcp9ax1jUPF4kNroWMP4lMxX0a0QlWWmumZZV3slCIL4TSBhT2w+BVHxic3Av+qCl91X/aaoxAogiLdGmCc3S0/ric3kZceg8sB96rgXPfQuE+3vbow2X8S5IQiCIF4eEvbE5kPCfsMR9wgn/T7fDyTsifdOAPe8jdrB+J1ujhHPYzOEfXAzQucDB9tqRFfCcmj/mtQmCYIgXhES9sTmo2JeT7xzfMx+OstFxX4lCk2fCeKdMPtpv8u+Q6yHFx2DVnBdKk2rN4M9ncF7BTcIgiAIIg0Je4IgCIIgCIIgCILYYEjYEwRBEARBEARBEMQGQ8KeIAiCIAiCIAiCIDYYEvYEQRAEQRAEQRAEscGQsCcIgiAIgiAIgiCIDYaEPUEQBEEQBEEQBEFsMCTsCYIgCIIgCIIgCGKDIWFPEOviKYDv+wjeOh0EQRAEQRAEQfxRbLCwD+BdmxifGhhdWnC8ZX7rY2ZZcO4D6d9nD5nnAw/O/O82+oyhP32FPD7OMLmw4AXrfO8rpv8Pwv3eQY0xsPdetg82xhcO/DW8y7u2MDk3MLq0832GIAiCIAiCIIhXYzOF/aON/i4H22qie2yg194GZzV0vruK7/AwOWBgx3b67/djtBiDdpZ5z08djLUx8UKsTxi7MAcGzNuSZ371wVkdxvWq3/BhnxsYTf3E30jYr537MVqMo/3NfYHTelkdro73vQ3GujB99d/40xGMczuxGeDB/KcBxreh7WnQdmpgrIH+NLtRRhAEQRAEQRDEa7CRwt4Z1MGaQ8yeFn9zz5pgXIeleLrtnmlgHw04ib/5V10wxsD2x/Cyz+6N4IYh1ieM1d4TPOu03sN4n6F14S39XWIJpn0w1sL4/iXeL6vD57Fsm/IuWuk+cW2gzpoYzTelAlhHHOxgkuo3BEEQBEEQBEG8Dhso7F2M9hha3zKn6tcGtpcRV9M++PwUPkQY+jAPGbTPOtqpE01xus9P4tP9hTD2b02MBgaM0zHsnCtAAG86xnBgwBiMYN4uTlz9GwuWNUSHMXS+WrCsmdw0+mEGy3LSpvi+C+tiCGNgYHhhwS04eQ3uHVjWBPoeg3Y8SbxHNf3p/2/dlp0YB/B+CdcG6W88G+NTA8ZgiPFUIlCfPNhRnkaXDrynbBnM4Euf8eGaIxgDA8a5KS0L/9aKvj3C5Drz7fjdvgvz3IBx5SK8d/JlHgZwpxasm3wZ+DcWrK8dMKZB/27B+uWlTu2960llGRalsbgOFy4j8zaWy3/8TFxGJtz5O+P2tqi3RR0l2mrkgjI51sD2dExi95WnAL6fPp33LlpgO0PM3nx8IAiCIAiCIIg/jw0U9nKCH72lTuzDwEKPMfR+BIl/12Fci42D+d9DGzpj6F7583/3GUProI3tZhf6QEdnl4PxLsy5n7GL8QEH/9BGb2DAOGqhxjjaF2Izwr0yYAy6aDKG5qExF125NGZPgu8n6Gwx1PZ7MAY6us0aGG9jfJf/rT8dwRjoaH9kqB/oMAYj2L5q+gM4X5rgXEPnOJ/+POJUub7TmL+z24zMs0/7aGy10BsY0P/WwBlH+3tCYN+Z6O4s8tTZ5WA7fdiPyTJooLG7jfaRAeOojW3OwA8NGAc1aH/rMAY9tLYY2E4fTrDIg/2fBs6j3x13oHGGxj+Jso7fvcOxvatBO3UQPkzQSbaLMIz+xqFbeVNz98qAcdgEY3W0PxsJk3UXk0+1ubtIXIbNL05C+JensaoOGzsatts9GIMe2h94pi3EzzTAP2jQ9oZwwkiAsz7sRL1pB21oUVvt7Yt6M65DhL6N0cCAflAH+9iGPihyCfAx+cTAP1sUOJAgCIIgCIIg3oDfRNi7GDUZGl+cJX4TidH4N9M+OBeCx/lSX5zQXxuopywBIsF0Yi9ETGBB52wuWIMfOrS9PqzHxfdmX7Om/wom8Rlh73ypJ1wCFvnm/xXlu9gUvyz94bWBRsrUWmyc8MKNE/EdfpQUdjMM9xgY7yXKIYD1mSfMun2YhzzzO5Gn5rmbKINMWkzhMtFMxkK4HaGZLM9rA/Ws3/fdGG3OF5s00z4Yq0O3kmJViFSWSJN/1S3fNJKY4vuXndymSzDtoxGLZtU0ltRh8+ts8bdHG/2dpLgWz9SPrZQ1iEzY84NxaZvKmeKniDeB5BtMBEEQBEEQBEG8PL+BsA9gnzTAdtL+8io4X+pzweJ8qS/E3LQPHolw73tbQZBnNgmSBD5834dv6glBVfSeDBnB6J43hVi8VQ1Spupjn06/8x/PC7nIwkGeXrkfuH2SD1CYEpbeBG3Gc+90z7TF96f9TLmFUbC6VkZIRpYIURqkeQhD2McM7NAUYlf27jCOtdCLhLxw0Sg9jc4J+6z7RoyLcauinLNpXCJOgvutBcb7UVuVPyMT9tJ6m3+/XNi7F21wrlHgPIIgCIIgCIJ4QzZc2MeivgtzldPCn3ok4DLm94GFHtMwug1gHWXFabEwZnMhF2B20UNzi4GxGhrzyOHPE/Zh6MMetMS1alsNtA6HKd/9PMsJe5H+6MYAJmdpYX9SIux/9cELvqMk7FPxFJLCPlsfme+XvXte/1F7CCz0JJsP5fWU3mSQl4liGpcJgJjKzzOFfULIFwr7yNKjc7meiP0EQRAEQRAEQazGRgt7cVr4DBNg30SXcfS/j9FKBcwTp7StCxPGx6R/fQgVYR9YOjhvY/S/xO9yInIVYR/xFMC7sTA+iXzfvxdFTF9F2EebGUemsDTIEDypfkdB2N+OoLEmhtf578yDs60k7GUbMlGbqbIGCEPMXQaOLPg/ernbE6rrqSDAY5yuZDlXpXEJYR/86L2usPdM9PY6GJdd2UgQBEEQBEEQxIuzscLe/6GjwdsY3TzHBDgSYPt54eJfdsD2W2gxLeXfrSLss8IoDLOiq+g9GVKC0YP1NR+8zD5mJdeMrSLsI5P/KjFb+R0FYa9y4ruSsC/KQ+Q/HqepUNhHmzOsg+4hR31QEbshJ+yjjYFPk/RtB1F+l0pjSR3qP9PpENdAll/LuFZhTxAEQRAEQRDEu2Ajhb0IQraN3pWbP+mNA7XdWRiemnArouQ7X+pgjEE7y5yu3o/RYkwivKqFsX/ZAWMtDK89+L4PdzpEZ4uBMT0n7JtfZwilp+ChJHheA2xHh3kvNjOCBwv9HVYiPOOgdib8J/X0hw8mupyh8dmMrlcL4Fl9NLc6mDwUf2dpYR/nibcxuo7E/YOD8T8NaHH0+BWFffhooZfMw5MP5yxj4VEi7MPQgfGRgbH6IthdETLLitsRmoyjfeaIsg88mJ8b6Yj/KmksqUP+lwH7QbQFz9TRSFlvrFnY856waEm1VRfW6RjOY0X5EARBEARBEATxomyksLdPin3AYyHpXXbAcwHW8oiT9OypfIj4NJ8dZYOmqfjYuzD/1eb+43y3h8k3HTzzHec0fqZAXEpMvM2jpvCxZ8J/v3k0xqxEWPlmN3o+fo9K+kOEdxP0mrVFuW61YPwsOllfXdiHoQ/nVFxhJ77Fof2byNOqwl6SB/6hk7bwKBX20Qm4iuVCgcuE/2sorqGLvl9r9mFlN0aq0lhSh93BUFzzF7eFgZ2wEFifsA8fTHSj76SejTYvZNcAEgRBEARBEATxemyksN8YgoSveBGPPvwKq4I8QYm/e0E6Vj1VfVTIw1pYMk8vngdhTi+96WBJAl+h/KvSmKrDtGgP/FXa0Cr1QwKeIAiCIAiCIN4jJOwJQsbdGC3WlFhyvAcU4jMQBEEQBEEQBPHHQMKeIFI4GO5ugzOGxoldfHf9m0LCniAIgiAIgiCIBSTsCSKFj5llwb5533ezBy/ltkAQBEEQBEEQxMZBwp4gCIIgCIIgCIIgNhgS9gRBEARBEARBEASxwZCwJwiCIAiCIAiCIIgNhoQ9QRAEQRAEQRAEQWwwJOwJgiAIgiAIgiAIYoMhYU8QBEEQBEEQBEEQGwwJe4IgCIIgCIIgCILYYEjYE8S6eArg+z6Ct07HmxKVwdNbp4MgCIIgCIIg/hw2WNgH8K5NjE8NjC5tzB6W+a2PmWXBuQ+kf8+9K/DgzP9uo88Y+tNXyOPjDJMLC16wzve+Yvr/INzvHdQYA3vvZftgY3zhwH+BdwfTPjQuyqB14b14XryLFtj+GN463zvtg7E+7Jeuh9f6zorYJwzsxH7zdGwML9ivvGsLk/NV5jmCIAiCIP4k53OVIgAAHhhJREFUNlPYP9ro73LwD010j3V0/9oGZw30p1mhXoSHyQEDO84sXO/HaDEG7cxN//2nDsbamHgh1ieMXZgDA+ZtyTO/+uCsDuN61W/4sM8NjKZ+4m8k7NfO/RgtxtH+5r7Aab2sDlfH+94GY12Yvvpv/OkIxrldIVps9DlD48SC/xKn9bcmjIEJN5kXEvYvxh8h7CVtatXfrdKvqvFg/tMA49vQ9jRoOzWwpeY5giAIgiD+JDZS2Dtf6mA7BpyEgHAGdbCPBhzFd7hnWu55/6oLxlhOLLhnGtjeKFrIrUsYq70neNZpvYfxfvb0lIT92pn2wVgL4/uXeL+sDp/Hsm1KSUBHm2Iv1q4kQpiE/cvxRwj7Veug4HfPG6slXBuosyZG883fANYRBzuYrLfNEwRBEATxW7CBwl6cYBpXmVP1aT9xqq7AtA+eet6HecigfdbRTp28iNN9Pl/kLoSxf2tiNDBgnI5h574bwJuOMRwYMAYjmLeLE1f/xoJlDdFhDJ2vFixrJj8NfZjBspy0Kb7vwroYwhgYGF5YcAtOiIJ7B5Y1gb7HoB1PEu9RTX/6/1u3ZSfGAbxfwrVB+hvPxvjUgDEYYjyVCNQnD3aUp9GlA+8pWwYz+NJnfLjmCMbAgHFuSsvCv7Wib48wuc58O36378KM29S9ky/zMIA7tWDd5MvAv7Fgfe2AMQ36dwvWLy91au9dTyrLsCiNxXW4cBmZt7Fc/uNn4jISJ4zinXF7W9Tboo4SbTVyQZkca2B7OiZS95Xond91aAXtubQOCtKZ/f+ijDsYWot6mAv7ZNsw3XxfKmtfknGBsT7sqneW9O9k2l0reibbxyTi0P+fBevnDN6TML9Ot7dEXWXKxklsKAX3cT1K0i1r75K+bnuKwt5zMDkv+FZU7s7lqHCsCu4d0V/i9AyGGFvRexLlP7ywU3Um/V1mXPFv8n1xnv+SNiXS7WMWjyupeiv+XbpfLZn/orb2FMD30/3Nu2iB7QwxK6sXgiAIgiD+SDZQ2Mtxz5pLndiHgYUeY+j9CBL/rsO4djHaS/w9tKEzhu6VP/93nzG0DtrYbnahD3R0djkY78Kc+z+6GB9w8A9t9AYGjKMWaoyjfSEW0u6VAWPQRZMxNA+NYnPQ7Enw/QSdLYbafg/GQEe3WQPjbYzv8r/1pyMYAx3tjwz1Ax3GYATbV01/AOdLE5xr6Bzn059HnCrXdxrzd3abkdnoaR+NrRZ6AwP63xo442h/TyzC70x0dxZ56uxysJ0+7MdkGTTQ2N1G+8iAcdTGNmfghwaMgxq0v3UYgx5aWwxspw8nWOTB/k8D59HvjjvQOEPjn0RZx+/e4dje1aCdOggfJugk20UYRn/j0K28qHWvDBiHTTBWR/uzkTBZdzH5VAPbaqKbKMPmFychNsrTWFWHjR0N2+0ejEEP7Q880xbiZxrgHzRoe0M4YSQM5oJS1Jt20IYWtdXevqg34zpE6NsYDQzoB3Wwj23oA7lLgD8dwfjcRj3XnhXqoCCdi/cLlxVRxk10BwtB6l20wPbaaM/bRgs1xtD44qi3L2mfa6CxU0MrkWZ+ME6kubx/J59hcds/bKLGGuiaXuI7C2EvYjQszKzdMw2slfhmNF7xz9ai/dyOoDFtfqLrXrQXZR31iVS6Ze09DOFddlBjfN6WWlsNNHbKhX0w7aPB+Lz/tT9w8L+Gi/53F41VzS70uF3xJozrRR/yLlpgHxtofBB9RJQRQ+NkiH6u/Ben1MW/s+dlY5/kLa8WZV7cpsJHG/2dRbrFmBXXS0VbTG7UqOa/qv2m8DH5lGkDBEEQBEEQERst7MXJt4XJaQcNri3pexiJ0XgRNe2Dc7Ewc77UFyf01wbqKTPrSIgkFpFhYEHnbC5Ygx86tL0+rIR4mH3Nmv4rmMRnhL3zpZ5wCQgRhi5GTQb+X9FCsNgUvyz94bWBRsoENETwowfOdVhSc1PxHX6UXHDOMNxjYLyXKIcA1meeWHD7MA955nciT81zN1EGmbSYwmWimYyFcDtCM1me1wbqWX/UuzHanC82aaZ9MFaHbiXFqlg8s0Sa/KsuWGHe8/UUhiH8y05u00WIocYiZoJKGkvqsPl1tvhbJEgWi37xTP3YSp0iyoR9VrRm29TKpvhK+ZOnU17GElP8TBm7500w3o/6mUL7kn4nk+bbEZqJjR2V/u2eN8E+6qkNBPdbCywaY5L58X+KdtH/6WfKbmE5FFg6OOfzMWreLuNvPlrQ9zT0k5tPN0NoyRgdsvYe9f1UW3pyYJQJ++g3rW+JMny0oX+M22kkQFPtKoB90hAuVKn66+XLkfHUxlpg6eCJ/hX/LunP7l60wRPjRLmwL25Ts/M2tE/pdJv/MLBDc9E+i9ri/G/L5L+s/SaJN1vlG7kEQRAEQRAbLeydUw3anobGFgP/qw97yYjBzpf6fPHnfKkvxNy0Dx4tmL3vbQVBntkkSBL48H0fvqlnFoPLC3ux6GtjfKseJFDNxz6dfuc/nl8URyeG8vTK/cDtk3yAwtQC2JugzXjune6Ztvi+zJ/1fowWa2UWuJElQpQGaR7CEPZxYpFe4CsrYi30IiEvXDRKT8lywj7rvhHjYtyqKOdsGpeIkxALR6fkGZmwl9ZbQsisKuzV8qcY80HVx37aXwQxU2lfCt+Zb4DINtCk/VvUf248CDw4sTtF9B0zOvnOW8M4MD4uLEfsE47WhYXRXpyfANZRwZgTXTno+yb0ZNnK8varnxLNqTZQJOx/9cElgeL8m8g0vaDcw7sxWomNhuL60yX9fZEPeXsUllXx5uSqwj7Fo6jb2Vnme1XC/tn5z5etsMZYdvOaIAiCIIg/iY0W9gv86DQkaYqtwE89EnAZ8/vAQo9pGN2KxXNanBYL48VCOMDsoofmFgNjNTTmEY2fJ+zD0Ic9EOaabKuB1uGwwLc3nS5VYS/SH90YwOQsLexPSoT9rz54wXeUhH1KjCSFfbY+Mt8ve/e8/qP2EFjoyRbppfWU3mSQl4liGpcJgJjKzzOFfUJwrCbsVfP3EsI+qguV9qXwnXmZHKv27+L6T3+Hg3OWs0hZfJNHm0M2+lw843ypoz5wIIR/ul0GN2P0mjUwxlDb0aDtNVCrEvY/sxuOxX1X3oZU+oO83RbXn6y/Vwn7dFteXdj7sAfC3Wcejf4DX07YPzv/md9GFhKdy/XcjEEQBEEQxO/JbyLsw9xpiBK+iS7j6H8fo5U6JRGntK0LE8bHpH99CBVhL8xm2xj9L/G73GJwFWEf8RTAu7EwPol8e78XCYhVhH20mXFkRqd+aQJp4LEVhf3tCBprYnid/848aNRKwl62ISOotAYIQ8xdBo4s+D961bEbcvUkNopSpsrxe48y5VyVxiWEffCj946EvWr+XlDYq7Qvhe+EYWRloNy/xWl7vv6z3+Fof3NgHdelfv/Bjx7Y3gizawP12AXn2kD9owHndgRtblUSRuKPo32WDOCWKVtZ3qb9hHVKed+NERYterGwvx1By1nUhDmrn/UK+6jPPVPYu+dNsB0dZiLQYe57VcL+2fnPjG2eid5eB+Oyq1EJgiAIgvjj2UBhLxZwubvmM4GklnlXaz+/wPIvO2D7LbRy76wW9rJFZVp0Fb0nQ2qR58H6mg9eZh+zkuuPVhH2sX/wEoEIVxX2KidRKwn7ojxE/uNxmkpMcYVfbwfdQx6dkKrWU4j5xsCnSdpvPPZNXiaNJXWo/0ynwxnUwZrl1zK+nrBXzd8LCvtVTjqlQlcI9XjMqe7f0abGP2bafePewnAwhvOYyU8UH6F+bKef9010WQvdw3pivHNgfKyjd9SV+H3nT3p7VcL+doSmZEM0uZGRIxprhzfJvwdwLgwYpltY7lJf+VWFfTKwYBjmAlw6X+r5Z7LWCblvya1Mcq4bVcL+2fl/qaszCYIgCIL4ndlAYb/wNR9dRwunBwejA54QNSHCOwvDUxNuhWm+86UOxiQbBdFiMi9MqoWxf9kBYy0Mrz34vg93OkRni2VOuRIB0Iqu38oFz2uI06ToyqvgwRKCoFB4xkHtTPhP6ukPH0x0OUPjsxldrxbAs/pobnUwkcYxWFHYx3nK1OX4nwa0OHr8isI+fLTQS+bhyYdz1k4Hnyr1sRVijqlYgcgW41HAtfaZI8o+8GB+bqRPZlXSWFKH/C8D9oNoC56pC1/tufXGmoV9HKysqK3Kgucp5W8ZYd8UYvIpka4KYVTZvqTfYWj8M4bzECAMPFgnzdQ7lfr3tYEGa0A3oyvXojFqHt092/buxmjlfO2jQI6ZNugMxJiVsiSKbnNofXXg+T78OxvDT8Isf74BVGB6bh5yMa7cBQifArimjgYri4ofBSU8GMF5iMYHUxcBAH/FUf3TY3Rwb0LfSQftfJawZw10L2fCgsififE/4YolRHQDfctH8BTAvxPfzwv7dJtyBnWwjz2Ydz5838PsUofGWXqToKgtJm85eFb+s2ObC+s02hAq6yMEQRAEQfzRbKSwD0MfzmnkB8kYGOPYbg/hJAIOeZcdcTpSEUFYnLTJTvrFaT47ygZNU/Gxd2H+q839e/luD5NvOnjmO85p/EyBuJSYeJtH4monke8amkdjzEoWfL7ZjZ6P36OS/hDh3WTur8sYA9tqwfhZdPK5urCX1aX2byJPqwp7SR74hw5GNwkT7IrgWWKRr2C5UHDK5v8aimvoou/Xmn1Y2Y2RqjSW1GF3MBTX/MVtYWAXm2FLy19N2IcPJrrRdwr9xmXCXil/isI+dDDcjcoyalNqwqiifUnrsovheWfxm61mpu2r9W//p5Gon+p2LSK7tzBKjFniardMG8zd1BH9/qonRChjYFxD73IMnSc2LYva+6OD4f6ijmqfRhj+U3GP/eMM40QZ5MeHbLnX0DyR3NCw8om9DiNZBx86mbE+XUdsq4XhoJt5d75N5cpif4jJ11bGiqOgLZaOa8vkX75JKLtukyAIgiAIImZDhf2CwPfhLxMw7zUJSnx5Yx5XSX9Q4u9ekI5VT3seFfKwFpbM04vnQZjTy6OOL0fgK5R/VRpTdZgWw6/TB4LntYM1taPA91e8w3uV9hX9pqxOFPL0umNURZqr6mjZceKpql2sv1+nBHHV9xXqSNqmFMpCrS2+4LhGEARBEASRYOOFPUG8CHdjtAqilb89qqfcBPH7oRTzgSAIgiAI4g+DhD1BpHAw3N0GZ2l/2PcFCXviz4WEPUEQBEEQRB4S9gSRwsfMsmDfvO87owMy7yX+VBRdIAiCIAiCIP4kSNgTBEEQBEEQBEEQxAZDwp4gCIIgCIIgCIIgNhgS9gRBEARBEARBEASxwZCwJwiCIAiCIAiCIIgNhoQ9QRAEQRAEQRAEQWwwJOwJgiAIgiAIgiAIYoMhYU8QBEEQBEEQBEEQGwwJe4Ig3p6nAL7vI3jrdBAEQRAEQRDEBvJ7CPtHF7ZlYfag+hsfM8uCcx9I/557T+DBmf/dRp8x9Kevka8ZJhcWvGCd733F9P/JvEjdqeBhvM/ATuy3LwNF3O8d1BgDe5V2KcqndeGt9b3eRQtsfwzvhcvqtb6zsbxkv/McWJcjGOcT2Df+2+eVIAiCIAgiwW8g7ANYR3xJUeBhcsDAjjPi536MFmPQztz033/qYKyNiRdifcLYhTkwYN6WPPOrD87qMK5X/YYP+9zAaJpchJKwf1adqP7u2XW3Ku9F2MvanoT7MVqMo/3NfZHTen86gnFuw8+UDwn734HX63ee2UWDcWzvatD2GqgxhsaJTRYmBEEQBEG8GzZe2Ac/ddQ/1lFfUqy6ZxrYRwNO4m/+VReMsdzC2T3TwPZGcMMQ6xPGau8JnnXyJBMxJOyfWyeqv3te3T2vzt9e2CsK6GkfjLUwvn+ZdOSFMAn734fX6ncOjI8MzcSGb/CjBz7f7CUIgiAIgnh7NlvYP9rQP9ah/zSXF2TTfmZh5sM8ZNA+62izLkw//rs43edzobRYTPq3JkYDA8bpGHZugRfAm44xHBgwBiOYt4uTS//GgmUN0WEMna8WLGuWOFFM8DCDZTlps1LfhXUxhDEwMLyw4Pry/AX3DixrAn2PQTueJN6jmv70/7duFUxPU2mz4T3ln/GuJ8XvfJiJsnjyYEfvGV060Xt8uOYIxsCAcW6m8y37nemmylSUR6acAw9OVC7ldbJCXcrqTjX/ibxKy/HJxywui1zdKQp7z8Hk3JCWlVJaS9picdvLtK8bC9bXDhjToH+3YP3yUiegSmXluzDPDRhXGSubyH1mcqyB7emYzF1vEsLeszE+zddpMn/muQFjMMTYkpfRPK2R4HaTv5lKNg9K6666H+WFfQB3asGaRhYPCn2htOwS3170vcUYGbsqzftDti/O+1tctkXtK9vGZW5Q76ffBb6PIFkW92O0WAPD/1WMiQRBEARBEK/EBgv7AM5/DfAjC8EqJ62BhR5j6P0IEv+uw7h2MdpL/D20oTOG7pU//3efMbQO2thudqEPdHR2ORjvwpwvSl2MDzj4hzZ6AwPGUQs1xtG+EAto98qAMeiiyRiahwaMgRlZA2TInmbeT9DZYqjt92AMdHSbNTDexvgu/1t/OoIx0NH+yFA/+P/bO2PWxpUtjn+V+RJTmjRhi7ixuxVbCLYQpDAEFrMQ8uBiAovYIoiAEYFgFhazEHBYcOCCigU1i1IsSvFIisWBgIuACoOKgJr/K0ayZ+SRJct779r7TvHrpNGZOWfE/DXnjGy4/SGCqKr9McILE5wb6H5ctl/L4wgdnrOtdQLvaTEm43cNsD0TJ1Kb5kW4EHO3Dhhro/16H51TF+5pB/ucgR+7cI8aMN7bcPs9WHsMrOUgjEvuOxrNx3V6bYExB4Fs89MIVjq+xT6p6culneiq/bfQOdqHeWzD/diFwRn4sbcQRrMATouhYZ7A7ruw3xvgrA3nNovXcmEf3zpoMz4fz84rDv52sBjPKrauiMXi2FOZ/O3CPTbBWBOdD66UMr9GrLTS9OjLUG0/CjDsu7CPmmAHHdj9rCxAjI9x1IGR+rR32ABjbSV9O75zYXKuxJwcT3mm1xbYQRvtPXnO5NK1S31XPo9UYR8jODfA5XdAhblQNHbxrQODc+x3xLO7r7l49vz9It4d7ZaRXiNiJ/8Omlx3wHn6fO3YTYV/uWTj6zbayjt8y+Zd/v160wXjNvzfkpVDEARBEASxzM4K+/iHg/ZcjNZJoRYL/OZFKghuHXAuhF940Vzs0N+5aCoLxXRxKy/YYx82Z+h8FTt08TcbxhsH/mzxvPtP+dT/CjbnFqnhRVMqCUiQJBMMTQZ+Hq7soy4Vf5X9yZ2LNjMxlGpX42898MKFrLCj+VGuOZ1gdLjIdBALYVUACIEpCapbByz/XE+UR8hpsMnPIUx57NL7Bg/5tjlsX4imMmFf5JPavsz5rnr/VaEX+7aSWXL/pQPjnSySYnj/YWBzEVIi7FNfW1fSeM4C2AeLOKlia3ks1k/Frz5WTdj+6kySolR8VWjmbQ/htnIxN/PR44t40j4nb/O3HrgUz+W+K59Hcn8mVx1V1FecC/qxE+nmat14Kq7n9ok4Nz/dK7HjtBj4B1/cN/NhvzHgyOP0MIAh1b2LmM59SLl1FGG/bfNOJvvos/JDJ0EQBEEQxL/Mjgr7EG6LL4Rozdro8KI5XySHF02w03RxeuuApwvI6ddOBUGe+0ggE0eIogiRZ+eE5frCfvLFFIvUn3pxsUzVGnvV/vCcL9fxphkOWnunY3Q0B1bFT2GaXp0vZ8iYYGSpH1cKxbeSlZBmHWT90t2Xtp2JtbrCvrYvFd9t2v+Cw8Bmwp77z7J4LRH2PxxwpdREED348B+iyraWx2JdYb/BWGmoWmMfnEkC+4cDvlT3H8M/LR5Xfe17AEf+YFbmu9J5tHhOcN1Z3u2vOBe012j7nKQHh2bxop8fkysLjDvKeSXZmEVRhCjyYEv3hecczMpnP6yYe9s07x5H6HAO45wOziMIgiAIYrvYSWEfXrTBj8bSIrrmoWffbTDWgx/n0u9jHz1mYPgzXcwrp+cXC+PFoj/G/XUP5h4DYw203xgwWo2NhX2SRAj6IsWX7bVhHQ/0tcE5u6oKe2F/+scApkdrb+kBaDkhLhGcSeO2Stg/rWivQOTJbdcX9jV9qYzJpv2X244Q9EV6NeP7MN4YMF7xysJeOw51fFUai3WF/QZjVdTfqsI+vW76tVMY/+sJ+/RZ8+yIEt9VOEhQZAZwcMbAeE/Z0a46F3TXFMaFMkcK3lm59uKHEXpmA4wxNFqLU+Sz+4KPunHMt71t807Y5H/gYO/GK89bIAiCIAiC+B3snrCfjtFhDPyVIRbGbxYLR7GIHGh2jgqIPJwwDufrCJayiykO0rOuPbgHcn19girCPvZtcN7B8L/SfUuLxzrCPuUlxvTBx+gsrTvV7QhKdq0n7NOPGadeutumEmsOxJuXK2hq/QXiw4mS/p0kWNoF/aXCXm27dip+XV8qvtu0/4u2J19MsJYNT0oRVkXlamEv/vxgrxDEFW0tjcW6wn6DsdJQR9jH33pgrAfveTn+o7yQLnyO6MvIWjyr1Hel8yiL4zYcP8RwqaSg2lzQXSP6rImLn0MYJcJe3Ju2F/uwOUfns3z4pHpfcMYW2VEF12zbvMtix/vLQHepPYIgCIIgiN/P7gn79LRrX6HCCfNa0oXf4fKiPLrpgh1asJih1HxXEfaySMiuURa/he3kyKWV+p+W/wsefGRgSvbCsl3rCftUgOR+BbjaJyJN/8RT04Kn/gDuVYi4aKcrq/deJdArC/u8KEl/UfVFLMK1gvaxXNjX9qXiu037n7WtF+2Tz0b1VPyfQxjMUGqwkyRGeO3C9SYVba0Si3WF/QZjpaGOsBdnOKz3L/TptZU7cyBB8jxGd35AZwXflc6jXH/Sg/YU4VphLmjHrqDPouQiu1bEuf1dvSbsN8HMYcHhdclSGY/+/RIo6frbNe8IgiAIgiC2n90T9lo0C7xHH4NLD5OSU4vDiyYYYzA+53Zh0oWdbgFaJoyjmy4YszC4myKKIkxuB+jusdyCWzqISrcLniSaw/PaYsfvSSz842cfTouh2V99eB4/9RC9VLc/efZwwhnaH7z0t1Expr4Dc6+L8bPe1rxt0d0QHS7t4P4cwmQcnc+hsCWewvvQBms5CGZyf+sKew7zIkAUJ0he0rZ5B+Psvuz5V/eIXxLE0xDDI65NA5d9UtuXeYGzUf+l+uR+E+ygB+8xQhRNcX9jw+BMqlkuOxU/gnfMwY+GCJ9T33o22qwN50dc2dbyWNTFXnmMbzRWGkTqek9k47ws7Fop7NMxUvr35MN520D3Rl/6InbSOcxzH5NZguQ5xOi4CXbgIIir+q58HuU/VMTfbTTlWvsqc6FwV5/rnz0/JE7EOX/rInhOD6X0bLTlTI30Y4b1KcQ0ihA9Bhi8E2n58w8C0vtlMkuQzCbCRinOt23eZUy+DTC6q3rGCUEQBEEQxL/HHyvspzddcRjUirTWJMl2gfK78gmy3fyylFFBXkxN4P1liDpYxsBf9zC+ssFzzwkvs2sKBIomTdk7NUVdMxO1p+bpCPcF6cFJkiDyTtLrV6XTasTg43heJ8sYA9uz4H5fVc8v1VwzBsYN9K7vlbGLfgzE77HSaxqmA/8539+6wv4E7qX0/D0zZ2+M8DJn34W91PayT2r6Unfae+3+S/6ahRgcLvzSOBxg/MlKz4oo8GWe2T1GUp90vi21tUIsLsdelRjfYKx0PHs42RNtZNkG5cI+QfIywTjXP6sfFGYDTa8tMMvF8GxxD3/VVd8/pb4rn0e6/9gHZ22wAxt+VHEuFI1dvs98H90v8hwW8+6kPxC/nMz8nhuXyd898cEis/9mBJurH0/jO7UN69LFifJe2rJ5l9o0NKU/ABAEQRAEQWwRf4iw31LiCFFUsrszi8TO2lptx8X17kV2rBD/pfaV9UFn24pr4hW1yrVQFuYlz3+J6/nkF/ryl/R/9gvaqDAW5baWxOImsffLYqWCz1eO0ep4XntcK/muxnOTZL25sHafc3Xw0ap4r/bsOIud9OyUpdT3bZt3BEEQBEEQWwoJe2L3qbp7SxB/Ov/oXKj595E8swDOexehdFhpcNYG47aUuUAQBEEQBEGsAwl7YvchYU8Qgl0Q9kkE/8xEg3HsvzbE7//2LAyodp0gCIIgCKI2JOyJ3adKej1B/D/wD8+FeJ0SoDLiCJM7H+FjjXIBgiAIgiAIQoGEPUEQBEEQBEEQBEHsMCTsCYIgCIIgCIIgCGKH+R8dEHmNmHLERQAAAABJRU5ErkJggg=="
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![%E5%9B%BE%E7%89%87.png](attachment:%E5%9B%BE%E7%89%87.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "输出大小为 $c_{0} \\times (\\frac{(h-k_{h}+2\\cdot p_{h})}{s_{h}}+1) \\times (\\frac{(w-k_{w}+2\\cdot p_{w})}{s_{w}}+1) $  \n",
    "则输出的每个值都需要计算 $ c_{i} \\times k_{h} \\times k_{w} $  \n",
    "所以乘法运算的总次数等于每个输出值执行的乘法次数乘以输出值个数\n",
    "即$c_{0} \\times (\\frac{(h-k_{h}+2\\cdot p_{h})}{s_{h}}+1) \\times (\\frac{(w-k_{w}+2\\cdot p_{w})}{s_{w}}+1) \\times c_{i} \\times k_{h} \\times k_{w} $ \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "加法运算，每个输出值需要进行$ c_{i} \\times k_{h} \\times k_{w} -1$ 次加法运算，总的加法次数为输出值个数乘上每个输出值进行的加法运算次数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2.2 以16位计算为例，一次计算时2B，则总计算量为\n",
    "$$\n",
    "c_{0} \\times (\\frac{(h-k_{h}+2\\cdot p_{h})}{s_{h}}+1) \\times (\\frac{(w-k_{w}+2\\cdot p_{w})}{s_{w}}+1) \\times c_{i} \\times k_{h} \\times k_{w}+ \n",
    "c_{0} \\times (\\frac{(h-k_{h}+2\\cdot p_{h})}{s_{h}}+1) \\times (\\frac{(w-k_{w}+2\\cdot p_{w})}{s_{w}}+1) \\times (c_{i} \\times k_{h} \\times k_{w} - 1) \\times 2B\n",
    "$$ \n",
    "换算成MB就是除以1024*1024"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
  {
   "attachments": {
    "%E5%9B%BE%E7%89%87.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![%E5%9B%BE%E7%89%87.png](attachment:%E5%9B%BE%E7%89%87.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "根据2.2， 通道 $c_{i}$和输出通道$c_{o}$加倍，则计算成本增加4倍，填充数翻倍，代入上式计算即可"
   ]
  },
  {
   "attachments": {
    "%E5%9B%BE%E7%89%87.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![%E5%9B%BE%E7%89%87.png](attachment:%E5%9B%BE%E7%89%87.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "核大小为$ c_{i} \\times 1 \\times 1$,一共有$c_{o}$个这样的核，所以下一层的大小为$c_{o} \\times h \\times w$\n",
    "所以计算成本为$ c_{i} \\times c_{o} \\times h \\times w $"
   ]
  },
  {
   "attachments": {
    "%E5%9B%BE%E7%89%87.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![%E5%9B%BE%E7%89%87.png](attachment:%E5%9B%BE%E7%89%87.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "不完全相同，因为计算机计算浮点数的缘故，导致会有一个极小的差异"
   ]
  },
  {
   "attachments": {
    "%E5%9B%BE%E7%89%87.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![%E5%9B%BE%E7%89%87.png](attachment:%E5%9B%BE%E7%89%87.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
